// 用户先登录，登录成功之后拿到token，然后再保存token到本地

import 'dart:io';

void main() {
  print('开始执行main函数');

  // 先登录
  login().then((token) {
    // 往本地存储token
    setToken(token).then((res) {
      if (res) {
        print('操作成功');
      }
    }).catchError((error) {
      print(error);
    });
  }).catchError((error) {
    print(error);
  });

  print('我是不能被阻塞的任务');
}

// 1. 模拟耗时的登录操作
Future<String> login() {
  return Future<String>(() {
    sleep(Duration(seconds: 3));
    print('完成登录操作');
    // 返回一个token
    return 'ewdewfd322';
  });
}

// 2. 模拟耗时的本地存储操作
Future<bool> setToken(String token) {
  return Future<bool>(() {
    sleep(Duration(seconds: 3));
    print('成功把token: $token存储到本地');
    return true;
  });
}
